package com.example.yilanchatserver.business.freechat.service;

import com.example.yilanchatserver.business.freechat.service.dto.*;

import reactor.core.publisher.Flux;

import java.util.List;

public interface ZhiPuService {
    Flux<String> send(FreeChatDTO chatDTO, String authToken, String talkUUid);

    Flux<String> sendWithPrompt(FreeChatPromptDTO chatDTO, String authToken);

    Flux<String> sendTest(FreeChatPromptDTO freeChatPromptDTO, String authToken, String knowledgeId) throws Exception;

    void resetTalkList(String userAccount);

    YiLanCreateSpaceVO createSpace(YiLanCreateSpaceDTO zhiPuCreateSpaceDTO) throws Exception;

    ZhiPuEmbeddingDTO embedding() throws Exception;

    String createKnowledgeBase(YiLanCreateKnowledgeBaseDTO yiLanCreateKnowledgeBaseDTO) throws Exception;

    void updateKnowledgeBase(YiLanCreateKnowledgeBaseDTO zhiPuUpdateKnowledgeBaseDTO) throws Exception;

    YiLanGetKnowledgeBaseListVO getKnowledgeBaseList(YiLanGetKnowledgeBaseListDTO zhiPuGetKnowledgeBaseListDTO) throws Exception;

    YiLanKnowledgeData getKnowledgeBase(String id) throws Exception;

    void deleteKnowledgeBase(String id) throws Exception;

    ZhiPuKnowledgeBaseCapacityVO knowledgeBaseCapacity() throws Exception;

    ZhiPuUploadDocumentVO knowledgeUploadDocument(ZhiPuUploadDocumentDTO zhiPuUploadDocumentDTO) throws Exception;

    void knowledgeEditDocument(ZhiPuUploadDocumentDTO zhiPuEditDocumentDTO) throws Exception;

    YiLanGetKnowledgeDocumentListVO getknowledgeDocumentList(ZhiPuGetKnowledgeDocumentListDTO zhiPuGetKnowledgeDocumentListDTO) throws Exception;

    YiLanDocumentData getknowledgeDocument(String id) throws Exception;

    void deleteKnowledgeDocument(String id) throws Exception;

    YiLanUploadUrlVO knowledgeUploadDocument(ZhiPuUploadUrlDTO zhiPuUploadUrlDTO) throws Exception;

    void reEmbeddingknowledge(String id) throws Exception;

//    String createApplication(ZhiPuApplicationData zhiPuApplicationData) throws Exception;

    ZhiPuGetApplicationListVO getApplicationList(ZhiPuGetKnowledgeBaseListDTO zhiPuGetApplicationListDTO) throws Exception;

    ZhiPuApplicationData getApplication(String id) throws Exception;

    void editApplication(ZhiPuApplicationData zhiPuApplicationData) throws Exception;

    void deleteApplication(String id) throws Exception;

    ZhiPuSliceVO sliceDocument(ZhiPuSliceDTO zhiPuSliceDTO) throws Exception;

    List<YiLanDocumentData> getAllKnowledgeDocumentList(String applicationId) throws Exception;

    String findBase() throws Exception;
}
